As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Information handling systems (IHSs) typically include a boot system such as, for example, a Basic Input/Output System (BIOS) that operates to perform hardware initialization during the boot process (power-on startup) and/or system reset, and to provide runtime services for operating systems and programs. For example, the BIOS may initialize and test the IHS hardware components, load an operating system from memory or storage device, and/or perform a variety of other BIOS actions known in the art during a boot process. The BIOS is implemented as non-volatile firmware, which is often stored in a Flash memory device or read only memory (ROM) device. Upon system start-up or restart, a boot loader or boot block is executed to access the BIOS firmware and execute the boot code. In addition to accessing the BIOS firmware, the boot block may access additional application firmware stored within the Flash memory or ROM device for configuring one or more IHS hardware components. In one example, the boot block may fetch application firmware stored within the Flash memory or ROM device for local storage and use within an embedded controller (EC) of the IHS.
A watchdog timer (WDT) is an electronic timer that may be used to detect and recover from information handling system malfunctions. In some cases, a watchdog timer may be initiated in response to an IHS boot process and may be used to determine whether the boot process has taken too long and should be restarted. For example, a watchdog timer may be configured to expire or “trip” after a time period that is indicative of a problem with the boot process. During normal operation, the information handling system may regularly reset the watchdog timer to prevent it from elapsing, tripping or timing out. If the watchdog timer expires (e.g., due to a hardware fault, program error, intentional hardware reset initiation, or time expiration), a time out signal may be generated, a WDT flag may be set, and the information handling system may be rebooted.
In some cases, a watchdog timer trip may cause a hardware reset equivalent to the system or system component coming out of a “cold boot.” In some cases, a hardware reset may cause the boot block to be re-executed, so that the BIOS and EC application firmware may be re-fetched from the Flash memory or ROM device and locally stored and executed. In other cases, however, the hardware reset may not propagate correctly to all system components associated with the reset/reboot process, thereby preventing the boot block from fetching the necessary boot-strapping code and resulting in a hung system. A need, therefore, exists for an improved information handling system and method for restarting one or more system components after a watchdog timer event.